/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package recibirNoticia.ejb;

import negocio.Noticia;
import com.google.gson.Gson;
import java.util.ArrayList;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.ejb.EJB;
import javax.ejb.Stateful;
import validadores.ejb.ValidadorLocal;
import logger.ejb.Logger4JLocal;

/**
 *
 * @author Comun
 */
@Stateful
public class RecibirNoticia implements RecibirNoticiaLocal {

    // Add business logic below. (Right-click in editor and choose
    // "Insert Code > Add Business Method")
    @EJB
    private ValidadorLocal validador;
    
    @EJB
    private Logger4JLocal log4j;
    
    // Add business logic below. (Right-click in editor and choose
    // "Insert Code > Add Business Method")
    ArrayList<Gson> listaNoticias = new ArrayList<Gson>();
    
    private void ingresarNoticia(Gson nuevoGson) {
        listaNoticias.add(nuevoGson);
    }
    @Override
    public int recibirNoticia(int idFuente, String codAutorizacion, String tituloNoticia, String contenidoNoticia, String topicoNoticia) {
        int cod_error;
        Noticia nuevaNoticia;
        Gson nuevoGson ;
        
        log4j.setLogger("RecibirNoticiaLocal");
        log4j.logWarning("Se recibió la noticia "+idFuente);
        
        try 
        {
            
            cod_error = validador.validarNoticia(idFuente, codAutorizacion, tituloNoticia, contenidoNoticia, topicoNoticia);
            if (cod_error == 0)
                {
                    nuevaNoticia = new Noticia(idFuente, codAutorizacion, tituloNoticia, contenidoNoticia, topicoNoticia);
                    nuevoGson = new Gson();
                    nuevoGson.toJson(nuevaNoticia);
                    ingresarNoticia (nuevoGson);
                    return 0;
                }   
            else 
            {
                return -1;
            }
        } 
        catch(Exception ex)
        {
            Logger.getLogger(RecibirNoticia.class.getName()).log(Level.SEVERE, "Error", ex);
            
            log4j.logError(ex.toString());
            
            return -1;
        }
       
    }

}
